25d8dc309d038437a50b4cbd64fdf66968235fd4,core/src/main/java/brooklyn/entity/rebind/transformer/CompoundTransformer.java,Builder,renameField,#String#String#String#,85
Before Change
}
public Builder renameField(String clazz, String oldVal, String newVal) {
// xstream format for inner classes is like <brooklyn.entity.rebind.transformer.CompoundTransformerTest_-OrigType>
clazz = toXstreamClassnameFormat(clazz);
oldVal = toXstreamClassnameFormat(oldVal);
newVal = toXstreamClassnameFormat(newVal);
String xsltTemplate = ResourceUtils.create(this).getResourceAsString("classpath://brooklyn/entity/rebind/transformer/renameField.xslt");
String xslt = TemplateProcessor.processTemplateContents(xsltTemplate, ImmutableMap.of("class_name", clazz, "old_val", oldVal, "new_val", newVal));
return xsltTransformer(xslt);
}
/** registers the given XSLT code to be applied to all persisted {@link BrooklynObjectType}s */
public Builder xsltTransformer(String xslt) {
After Change
* In stream tags corresponding to fields are contained in the tag corresponding to the class name,
* so this gives a way to change the name of a field which will be deserialized. */
public Builder renameField(String clazz, String oldVal, String newVal) {
return xsltTransformerFromXsltFreemarkerTemplateUrl("classpath://brooklyn/entity/rebind/transformer/renameField.xslt",
ImmutableMap.of("class_name", toXstreamClassnameFormat(clazz), "old_val", toXstreamClassnameFormat(oldVal), "new_val", toXstreamClassnameFormat(newVal)));
}
private String toXstreamClassnameFormat(String val) {